package com.zmn.oms.model.entity.log;

import com.zmn.oms.manager.utils.MongodbConsts;
import lombok.Data;
import org.springframework.data.mongodb.core.index.Indexed;
import org.springframework.data.mongodb.core.mapping.Document;

/**
 * 类描述：渠道订单对接同步日志模型
 *  订单同步事件，啄木鸟系统与第三方渠道之间的每一次接口调用，定义为一个同步事件
 *  每次事件中，包含这次接口交互发生的时间，数据的流向，接口交互的目的和交互结果
 *
 * @author lhl
 * @date 2020/07/03 18:07
 */
@Data
@Document(collection = MongodbConsts.CHANNEL_ORDER_DOCKING_LOG_TABLE)
public class OrderChannelDockingLog {
    /**
     * 第三方订单Id
     */
    @Indexed
    private String outerId;

    /**
     * 订单Id
     */
    @Indexed
    private Long orderId;

    /**
     * 交互渠道
     */
    @Indexed
    private Integer channelId;

    /**
     * 数据走向
     * 使用常量：TodmConsts.DATA_IN, TodmConsts.DATA_OUT
     */
    private Integer type;

    /**
     *  使用常量：操作类型
     */
    private Integer operation;

    /**
     * 接口交互是否成功
     *  GlobalConsts.NO (1): 失败
     *  GlobalConsts.YES (2): 成功
     */
    private Integer success;

    /**
     * 接口交互是否因程序异常而中断
     *  GlobalConsts.NO (1): 否
     *  GlobalConsts.YES (2): 是
     */
    private Integer error;

    /**
     *
     */
    private String errorMsg;

    /**
     * 发生异常的堆栈信息
     */
    private String errorStackTrace;

    /**
     * 请求数据摘要
     */
    private String reqSummary;

    /**
     * 返回数据摘要
     */
    private String respSummary;

    /**
     * 备注
     */
    private String remark;

    /**
     * 本次接口交互事件发生的开始时间，建议使用UNIX时间戳
     */
    @Indexed
    private Long beginTime;

    /**
     * 本次接口交互事件发生的结束时间，建议使用UNIX时间戳
     */
    private Long endTime;
}
